/*
 * @Author: 肖思汗 
 * @Date: 2025-07-16 14:27:48 
 * @Last Modified by: xiaosihan
 * @Last Modified time: 2025-10-31 13:49:11
 */

declare interface Window {
    render3DGoodsRenderer: any;
}

// 多语言类型
export enum LangType {
    CN = "cn", // 中文
    EN = "en", // 英文
    // JP = "jp", // 日语
    // TW = "tw", // 台湾繁体
    // ES = "es", // 西班语言
    // PT = "pt", // 葡萄牙语
    // FR = "fr", // 法语
    // DE = "de", // 德语
    // RU = "ru", // 俄语
    // KO = "ko", // 韩语
}




// 用户信息
export type UserData = {
    userId: number;
    name: string;
    sex: string;
    phone: string;
}

// 管理员信息
export type AdminData = {
    adminId: number;
    name: string;
    phone: string;
}

// http 请求状态的值的枚举
export enum HttpStatus {
    SUCCESS = 200,
    UNAUTHORIZED = 401,
    FORBIDDEN = 403,
    NOT_FOUND = 404,
    SERVER_ERROR = 500,
}

// 设计数据 fabricJSON
export type FabricJSON = { objects: Array<any>, version?: string, background?: `#${string}` };


// 版型 → Silhouette
// 花型 → Pattern

// 版型数据
export type SilhouetteData = {
    silhouette_id: number;
    ifShow: boolean;
    sort: number;
    name: string;
    price: number;
}

// 版型数据组
export type SilhouetteGroupData = {
    silhouette_group_id: number;
    ifShow: boolean;
    name: string;
    sort: number;
    silhouettes: Array<SilhouetteData>;
}

// 花型数据
export type PatternData = {
    pattern_id: number;
    ifShow: boolean;
    sort: number;
    fabricJson: FabricJSON
}


// Ollama 相关的数据类型
export interface OllamaModel {
    name: string;
    size: number;
    digest: string;
    modified_at: string;
}

export interface SearchModel {
    name: string;
    model: string;
    digest: string;
    family: string;
    namespace: string;
    stars: number;
    downloads: number;
    updated_at: string;
}

export interface ChatMessage {
    role: 'user' | 'assistant' | 'system';
    content: string;
}

// 这个管理oss 文件工具用的数据格式
// ossFileData
export type OssFileData = {
    file_id: number;
    url: string;
    optimized: boolean;
    used: "unknown" | "nouse" | "used";
    suffix: string;
}

// Design 数据类型
export type DesignData = {
    id: number;
    data: string;
    order: number;
}


// fabricJson
export type FabricJson = {
    background: string;
    objects: Array<object>;
    version: string;
}


// ai 不要修改这个PageTemplateStoreData类型
/// 这是PageTemplateStore 数据类型仅用于参考
export type PageTemplateStoreData = {
    id: number,
    name: string
}


